home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / M-More Monthly Disks / (c)m9.d64 / file_master (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  12KB  |  397 lines

  1. 1 REM *********************
  2. 2 REM PONZO/WATERLOO/MAR/84
  3. 3 REM *********************
  4. 4 :
  5. 5 REM FILE/MASTER...FOR C64
  6. 6 :
  7. 10 POKE56,7*16+12:POKE55,8*16:CLR
  8. 11 PRINTCHR$(14):C1=15:C2=12:C3=0:POKE53281,C1:POKE53280,C2:POKE646,C3
  9. 12 PRINT"[147]MARCH/84":FORT=1TO500:NEXT:GOSUB63000
  10. 13 REM MENU
  11. 14 W$="":IFTF$=""THENTF$="[160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160]":NM=-1:NC$=""
  12. 15 POKE646,C3:PRINT"[147]  HIT [211][208][193][195][197][194][193][210][146] TO";
  13. 16 POKE646,C3:PRINT""W$"LOAD [212][201][212][204][197]-[198][201][204][197]":PRINTL$
  14. 17 M$(1)="[212]YPE[157][157][157][157][184][184][184][184][145] IN DATA."
  15. 18 M$(2)="[196]ISPLAY[157][157][157][157][157][157][157][184][184][184][184][184][184][184][145] DATA."
  16. 19 M$(3)="[210]ECALL[157][157][157][157][157][157][184][184][184][184][184][184][145] OR [211]AVE[157][157][157][157][184][184][184][184][145] DATA."
  17. 20 M$(4)="[208]ERFORM[157][157][157][157][157][157][157][184][184][184][184][184][184][184][145] [213]SER [211]UBROUTINE."
  18. 21 M$(5)="[211]ORT[157][157][157][157][184][184][184][184][145] DATA."
  19. 22 M$(6)="[211]EARCH[157][157][157][157][157][157][184][184][184][184][184][184][145] DATA."
  20. 23 M$(7)="[195]REATE OR [205]ODIFY[157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][157][184][184][184][184][184][184][184][184][184][184][184][184][145] [212][201][212][204][197]-[198][201][204][197]."
  21. 25 FORI=1TO7:PRINTX$" "STR$(I)"[146]: "M$(I)"":NEXT
  22. 34 PRINTL$:PRINTX$"     [146] HIT "Q$"[146] TO [209][213][201][212]     ":POKE646,C3
  23. 35 PRINTSD$"[145]"L$SD$"                           E[146]=EXPLAIN":POKE646,C3
  24. 36 GOSUB16000:PT=0:GOSUB60:GOSUB63500
  25. 37 IFQ9GOTO13
  26. 44 IFA$=Q$ THEN INPUT"[147][215]ANT TO QUIT   Y[157][157][157]";U9$:IFU9$="Y"THENEND
  27. 45 IFA$="E"THENGOSUB63600
  28. 46 A=VAL(A$):AA=ASC(A$):IFA>7THEN14
  29. 47 PRINTLEFT$(SD$,2*A+1)X$""M$(A):T0=0:IFA$=Q$GOTO13
  30. 48 IFAA=32THENGOSUB40000:GOTO54
  31. 49 GETA$:T0=T0+1:IFA$=""ANDT0<20THEN49
  32. 50 IFA$<>""THEN14
  33. 51 IFLEFT$(TF$,1)="[160]"ANDA<7THENW$="[211][208][193][195][197][146] AND         [144]":GOSUB16100:GOTO16
  34. 52 ONAGOSUB100,200,300,400,600,700,900
  35. 54 GOSUB2000:GOTO14
  36. 60 POKE646,C3:PRINTSD$"[145][145][145][145][145][145][176]";:FORL9=1TOWD-2:PRINT"[192]";:NEXT:PRINT"[174]"
  37. 65 PRINTSD$"[145][145][145][145][145][221]DATA FILE ="FL$" [146]";:POKE646,C3:PRINTN"RECORDS";
  38. 66 PRINT"[157][157][157][157][157][157][157][157][157]"NC$
  39. 70 PRINTSD$"[145][145][145][145][221][157][221]TITLE FILE="TF$"[146]";:POKE646,C3:PRINTNM+1"TITLES"
  40. 75 PRINTSD$"[145][145][173]";:FORL9=1TOWD-2:PRINT"[192]";:NEXT:PRINT"[189][145][145][145][157][221][157][221][157][221]";
  41. 80 POKE646,C3:RETURN
  42. 100 REM ENTER DATA
  43. 105 IFN<>0THEN120
  44. 110 GOSUB16100:PRINT"[147][166][166][166][166][166][166][166]NEW FILE[166][166][166][166][166][166][166]":INPUT"[206]AME OF [196][193][212][193] [198][201][204][197] ";NM$
  45. 115 FL$=" "+NM$
  46. 120 PRINT"[147]CURRENT FILE";FL$
  47. 130 PRINT"THERE ARE "N" RECORDS."
  48. 140 INPUT"[211]TART WITH RECORD #    1[157][157][157]";I:GOSUB16000:NN=N
  49. 150 IFI>N+1ORI>NCTHENGOSUB16100:GOTO100
  50. 160 GOSUB15000:IFA$=Q$THEN175
  51. 165 I=I+1:IFI<=NCTHEN160
  52. 170 PRINT"[147]******MAXIMUM NUMBER OF RECORDS******":PRINT"START NEW FILE"
  53. 175 IFI>N THENN=I-1
  54. 180 RETURN
  55. 200 REM DISPLAY
  56. 205 PT=0:FF$="":INPUT"[147]OUTPUT TO PRINTER   N[157][157][157]";A$:IFA$="N"THEN210
  57. 206 PT=1:INPUT"DOES THE PRINTER NEED A LINE FEED   N[157][157][157]";U9$
  58. 207 IFL9$="Y"THENFF$=CHR$(10)
  59. 210 GOSUB18000:A=VAL(A$):ONAGOTO215,17000,17500
  60. 215 T9=0:INPUT"[147]SUPPRESS TITLES   N[157][157][157]";T9$:PRINT"[147]":IFT9$="N"THENT9=1
  61. 216 IFPT=0THENGOSUB17110
  62. 220 IFPT=1THENOPEN4,4:CMD4
  63. 225 FORI=C1TOC2:Z=0:K=0:C=0:SN=SN(I)
  64. 230 FORJ=ZTOA(K):PRINTP$(PT);
  65. 235 IF T9 THEN PRINTTL$(J)"[146]:";
  66. 236 PRINT"[146]";:IFPT=0THENGOSUB280
  67. 240 PRINTDA$(SN,J)"[146]";:LD=LEN(DA$(SN,J))
  68. 241 X=L(J)+2-LD:FORK9=1TOX:PRINT" ";:NEXT:NEXT:C=1-C
  69. 242 IFPT=1ANDWD=40THENPRINTPT$(C);:GOTO244
  70. 243 PRINT
  71. 244 IFK<KMTHENZ=A(K)+1:K=K+1:GOTO230
  72. 245 PRINT FF$
  73. 246 IFPT=0THENGOSUB260
  74. 250 NEXT:IFPT=1THENPRINT#4:CLOSE4
  75. 255 X=0:PT=0:RETURN
  76. 260 IFPEEK(197)=P1THENI=C2:RETURN
  77. 265 IFPEEK(197)=P2THENRETURN
  78. 270 IFPEEK(197)=P3THEN270
  79. 275 RETURN
  80. 280 PRINTRV$(R(J));:RETURN
  81. 300 REM RECALL/SAVE
  82. 301 PRINT"[147]1[146]:[210]ECALL":PRINT"2[146]:[211]AVE":GOSUB63501:A=VAL(A$):PRINT""
  83. 302 IF A=1THENPRINT"[210]ECALL":GOTO305
  84. 303 PRINT"[211]AVE":GOTO500
  85. 305 PRINT:INPUT"[206]AME OF [196][193][212][193] [198][201][204][197]";NM$:GOSUB16000:N$=NM$
  86. 306 IFN$=Q$THENRETURN
  87. 307 IFRIGHT$(N$,1)<>"+"THENN$=N$+"+"
  88. 310 INPUT"[196]RIVE   0[157][157][157]";DR$:GOSUB16000
  89. 315 OPEN15,8,15
  90. 320 OPEN2,8,2,DR$+":"+N$+",S,R"
  91. 325 INPUT#15,E,EM$,ET$,ES$
  92. 330 IFE<>0THENPRINT"DISK STATUS "EM$:GOTO355
  93. 335 INPUT#2,N:IFSS=0THENPRINT""N" RECORDS"
  94. 340 INPUT#2,NM
  95. 345 FORI=1TON:FORJ=0TONM:INPUT#2,DA$:IFDA$=SS$THENDA$=""
  96. 350 DA$(I,J)=DA$:NEXT:NEXT
  97. 355 FL$=" "+NM$
  98. 360 CLOSE2:CLOSE15
  99. 365 FORI=0TON:SN(I)=I:NEXT:RETURN
  100. 400 REM USER ROUTINE CALCULATIONS
  101. 401 R$="[147][215]ORKING ON RECORD "
  102. 402 IFPEEK(705)<>123THENPRINT"[147][206][207] [213][211][197][210] [211][213][194][210][207][213][212][201][206][197]":RETURN
  103. 405 FORI=1TON:SN=SN(I):PRINTR$SN:FORW1=0TONM:IFN(W1)=0THENV(W1)=VAL(DA$(SN,W1))
  104. 410 NEXT:GOSUB55000:FORW1=0TONM:IFN(W1)=1THEN450
  105. 420 V1=V(W1):L1=2:IFV1<0THENL1=1
  106. 430 DA$(SN,W1)=MID$(STR$(V1),L1,L(W1))
  107. 450 NEXT:NEXT:RETURN
  108. 500 REM SAVE TO DISK
  109. 510 PRINT:PRINT"[206]AME OF [196][193][212][193] [198][201][204][197]  ";NM$;:GOSUB16000
  110. 511 OPEN1,0:FORY=1TOLEN(NM$):PRINT"[157]";:NEXT:INPUT#1,NM$:CLOSE1:PRINT
  111. 512 IFNM$=Q$THENRETURN
  112. 513 IFRIGHT$(NM$,1)<>"+"THENN$=NM$+"+"
  113. 514 FL$=" "+NM$
  114. 515 INPUT"[196]RIVE   0[157][157][157]";DR$:GOSUB16000
  115. 520 INPUT"[207]VERWRITE EXISTING FILE   N[157][157][157]";A$:GOSUB16000
  116. 525 OPEN15,8,15
  117. 530 IFA$="Y"THENDR$="@"+DR$
  118. 535 OPEN2,8,2,DR$+":"+N$+",S,W"
  119. 540 INPUT#15,E,EM$,ET$,ES$
  120. 545 IFE<>0THENPRINT"DISK STATUS "EM$:GOTO590
  121. 550 PRINT#2,N;CR$;NM;CR$;
  122. 555 FORI=1TON:SN=SN(I):FORJ=0TONM
  123. 560 DA$=DA$(SN,J):IFDA$=""THENDA$=SS$
  124. 570 PRINT#2,DA$;CR$;
  125. 580 NEXT:NEXT
  126. 590 CLOSE2:CLOSE15:RETURN
  127. 600 REM SORT
  128. 610 IFN<=1THENPRINT"[147]****NO DATA FILE[146]****":RETURN
  129. 632 PRINT"[147]SORT ON:"
  130. 633 I3=7*4096+12*256+8*16:I4=7*4096+14*256+14*16:I5=7*4096+15*256
  131. 634 POKEI4,0:POKEI4+1,68:POKEI4+2,193
  132. 635 FORS=0TONM:PRINT""S"[146]:"FD$(S):NEXT
  133. 636 GOSUB63500:S=VAL(A$)
  134. 637 IFS>NMTHEN632
  135. 639 K=7+3*S*(NC+1):KH%=K/256:POKEI4+4,KH%:POKEI4+3,K-256*KH%:POKEI4+5,N
  136. 640 PRINT"[147]SORTING ON "FD$(S)
  137. 641 IFN(S)=1THENPOKEI3+90,131:POKEI3+132,131:POKEI3+91,125:POKEI3+133,125
  138. 642 IFN(S)=0THENPOKEI3+90,66:POKEI3+132,66:POKEI3+91,126:POKEI3+133,126
  139. 643 SYSI3
  140. 644 FORI9=0TON:SN(I9)=PEEK(I5+I9):NEXT:PRINT"[147][206]OW [211][193][214][197] [211][207][210][212][197][196] [196][193][212][193]":RETURN
  141. 700 REM SEARCH
  142. 710 GOTO10000
  143. 720 REM INPUT ROUTINE
  144. 730 IN$="":N0=0
  145. 735 PRINT"[175][157]";
  146. 740 GETA$:IFA$=""THEN740
  147. 745 A=ASC(A$):IFA>47ANDA<91THEN775
  148. 750 IFA=A1ORA=A2ORA=A3ORA=A4ORA=A5ORA=A6THEN735
  149. 755 PRINT" [157]";:IFA=A9THENS$=IN$:PRINTA$:RETURN
  150. 765 IFIN$=""ANDA=A8THEN735
  151. 770 IFA=A8THENN0=N0-1:PRINT"[157] [157]";:IN$=LEFT$(IN$,N0):GOTO735
  152. 775 IFA=44THENA$=";"
  153. 780 PRINT" [157]"A$;:IN$=IN$+A$:N0=N0+1:GOTO735
  154. 900 REM TITLE/FILE
  155. 910 PRINT"[147][215]HERE IS [198][201][204][197]/[212][201][212][204][197][211]":INPUT"[196]RIVE   0[157][157][157]";DR$
  156. 920 PRINT"..LOADING [198][201][204][197]/[212][201][212][204][197][211]"
  157. 925 LOADDR$+":FILE/TITLES*",8
  158. 2000 REM KEY GETS
  159. 2005 PRINTSD$"[145]"L$SD$BL$SD$X$"[146]HIT [210][197][212][213][210][206][146] TO CONTINUE";
  160. 2010 GETA$:IFA$<>""THEN2010
  161. 2020 GETA$:IFA$=""THEN2020
  162. 2030 IFA$<>CHR$(13)THEN2010
  163. 2040 RETURN
  164. 2100 GETA$:IFA$<>""THEN2100
  165. 2110 GETA$:IFA$=""THEN2110
  166. 2120 IFA$<>CHR$(32)THEN2100
  167. 2130 RETURN
  168. 2200 GETA$:IFA$<>""THEN2200
  169. 2210 GETA$:IFA$=""THEN2210
  170. 2220 IFA$=CHR$(13)THEN2200
  171. 2230 RETURN
  172. 2300 Q9=0:GETA$:IFA$<>""THEN2300
  173. 2310 GETA$:IFA$=""THEN2310
  174. 2320 IFA$="[133]"THENC1=-(C1+1)*(C1<15):POKE53281,C1:GOTO2300
  175. 2330 IFA$="[134]"THENC2=-(C2+1)*(C2<15):POKE53280,C2:GOTO2300
  176. 2345 IFA$="[135]"THENC3=-(C3+1)*(C3<15):POKE646,C3:Q9=1
  177. 2350 RETURN
  178. 10000 REM SEARCH
  179. 10010 S=0
  180. 10020 MM=NM:HI$="SEARCH":GOSUB19000:K8=I
  181. 10030 PRINT"[147]1[146]:SEARCH FILE IN [195]64 "FL$
  182. 10040 PRINT"2[146]:SEARCH ALL FILES"
  183. 10050 GOSUB2200:A1=VAL(A$):IFA1=0THEN10000
  184. 10060 PRINT"[147]":FORS=0TOK8
  185. 10070 PRINTFD$(TN(S))"= ";:GOSUB720
  186. 10080 GOSUB16000
  187. 10090 S$(S)=S$:X(S)=LEN(S$):NEXT:J0=1:II=0
  188. 10100 IFA1=2THENGOTO10250
  189. 10110 PRINTL$
  190. 10120 FORI=J0TON:S8=0:FORS=0TOK8
  191. 10125 IFLEFT$(DA$(I,TN(S)),X(S))=S$(S)THENS8=S8+1
  192. 10130 NEXT:IFS8=K8+1 THENII=I:I=N
  193. 10140 NEXT:IFII=0THENPRINT"NO EXACT MATCH":PRINTL$:RETURN
  194. 10150 IFII=-1THENPRINT"NO MORE..":PRINTL$:A$="":RETURN
  195. 10160 PRINT"[147]"II:FORJ=0TONM
  196. 10170 PRINTFD$(J);:GOSUB280
  197. 10180 PRINTDA$(II,J):NEXT
  198. 10200 PRINTL$:PRINTSD$"[145]"BL$SD$"[145]ANY CHANGES?";
  199. 10205 GOSUB63501:IFA$="Y"THENI=II:GOSUB15000:GOSUB10400
  200. 10210 PRINTSD$"[145]"BL$SD$"[145][195]ONTINUE SEARCH?       "
  201. 10220 GOSUB2200
  202. 10230 IFA$="N"THENRETURN
  203. 10240 J0=II+1:II=-1:PRINT"[147]":GOTO10120
  204. 10250 REM SEARCH ALL FILES
  205. 10260 GOSUB50000:PRINT"[147]"
  206. 10270 FORP=1TOCN:NM$=NM$(P):IFRIGHT$(NM$,1)<>"+"THEN10310
  207. 10275 PRINT"SEARCHING "NM$"[146] "
  208. 10280 N$=NM$:GOSUB315
  209. 10290 II=0:J0=1
  210. 10300 GOSUB10120:IFA$="N"THENP=CN
  211. 10310 NEXT P
  212. 10320 RETURN
  213. 10400 PRINT"[147][210]EWRITE MODIFIED FILE TO DISK  ";:GOSUB63501
  214. 10410 IFA$="N"THENRETURN
  215. 10420 GOSUB500:RETURN
  216. 15000 REM INPUT ROUTINE
  217. 15005 SN=SN(I)
  218. 15010 PRINTCHR$(14):S$="":PRINT"[147]RECORD"I"      *=DELETE RECORD"
  219. 15011 FORK=0TONM:PRINTPS$(K)TL$(K)BX$(K);
  220. 15015 PRINTDA$(SN,K);:NEXT:K=0:GOSUB15200
  221. 15020 K=K-(K<0):IFK>NMTHEN15130
  222. 15025 IN$=DA$(SN,K):N0=LEN(IN$):PRINTPS$(LK)TL$(LK)
  223. 15030 PRINTPS$(K)""TL$(K)"[146]"S$IN$;:LK=K:PRINT"[175][157]";
  224. 15035 GETA$:IFA$=""THEN15035
  225. 15040 A=ASC(A$):IFA>47ANDA<91THEN15095
  226. 15045 IFA=A1ORA=A2ORA=A3ORA=A4ORA=A5ORA=A6THEN15030
  227. 15055 IFA=ABTHENIN$=DA$(SN(I-1),K):A=A9:PRINTPS$(K)TL$(K)S$IN$;
  228. 15060 PRINT" [157]";:IFA=A9THENDA$(SN,K)=LEFT$(IN$,L(K)):K=K+1:GOTO15020
  229. 15070 IFA=A7THENDA$(SN,K)=LEFT$(IN$,L(K)):K=K-1:GOTO15020
  230. 15080 IFIN$=""ANDA=A8THEN15030
  231. 15090 IFA=A8THENN0=N0-1:PRINT"[157] [157]";:IN$=LEFT$(IN$,N0):GOTO15030
  232. 15095 IFA=AQTHENRETURN
  233. 15096 IFA=42 THENGOSUB15500:GOTO15000
  234. 15100 IFN0=L(K)THENK=K+1:GOTO15020
  235. 15110 IFA=44THENA$=";"
  236. 15115 PRINT" [157]"A$;:IN$=IN$+A$:N0=LEN(IN$):IFN0<L(K)THEN15030
  237. 15120 DA$(SN,K)=LEFT$(IN$,L(K)):K=K+1:IFK<=NMTHEN15020
  238. 15130 PRINT"[147]RECORD"SN:FORK=0TONM:PRINTPS$(K)TL$(K)BX$(K);
  239. 15131 PRINTDA$(SN,K);:NEXT:K=0:GOSUB15200
  240. 15134 PRINT"[196][193][212][193] [207][203]?";:GOSUB63501:IFA$="N"THENGOTO15000
  241. 15135 RETURN
  242. 15140 BX$="[221][145][157][176]":FORZ=1TOBL+1:BX$=BX$+"[192]":NEXT:BX$=BX$+"[174][157][221][157][189][157][157]"
  243. 15150 FORZ=1TOBL+1:BX$=BX$+"[192][157][157]":NEXT:BX$=BX$+"[173][145]":PRINTBX$;:RETURN
  244. 15200 PRINTSD$"[145][145]":PRINTBB$;
  245. 15210 PRINT""Q$"[146]=QUIT[221][145][157][178][157][177][145]"B$"[146]=LAST[221][145][157][178][157][177][145]";
  246. 15220 PRINT"_[146]BACK[221][145][157][178][157][177][145]RETURN[146]=FORWARD":RETURN
  247. 15500 PRINT"[147][215]ANT TO DELETE [210][197][195][207][210][196]:([217]/[206])":PRINT""DA$(SN,0):INPUT"";U9$
  248. 15510 IFLEFT$(U9$,1)<>"Y"THENRETURN
  249. 15520 PRINT"DELETING....":N=N-1:FORU9=ITON:SN(U9)=SN(U9+1):NEXT:SN(U9)=SN
  250. 15530 RETURN
  251. 16000 REM BEEP
  252. 16010 POKESID+24,15:POKESID+4,33:FORPP=1TO50:NEXT:POKESID+4,0
  253. 16015 POKESID+24,0
  254. 16020 RETURN
  255. 16100 POKESID+24,15
  256. 16110 FORU=1TO5:POKESID+4,17:FORPP=1TO50:NEXT:POKESID+4,0:NEXT
  257. 16115 POKESID+24,0
  258. 16120 RETURN
  259. 17000 REM SELECTED TITLES FOR PRINTING
  260. 17010 MM=NM:HI$="DISPLAY":GOSUB19000
  261. 17020 K8=I:IFPT=0THENGOSUB17110
  262. 17030 IFPT=1THENOPEN4,4:CMD4
  263. 17040 FORI=C1TOC2:SN=SN(I)
  264. 17050 FORL=0TOK8:J=TN(L):PRINTSPC(X)P$(PT);:IFPT=1THENGOSUB280
  265. 17060 PRINTFD$(J)"[146]";:IFPT=0THENGOSUB280
  266. 17070 PRINTDA$(SN,J)FF$:NEXT
  267. 17080 IFPT=0THENPRINTL$:GOSUB260
  268. 17090 NEXT:IFPT=1THENPRINT#4:CLOSE4
  269. 17100 X=0:PT=0:RETURN
  270. 17110 PRINT"[147]DURING THE DISPLAY:"
  271. 17120 PRINT"PRESS SPACE[146] TO START/STOP"
  272. 17130 PRINT"PRESS RETURN[146] TO DISCONTINUE"
  273. 17140 PRINTSD$"HIT SPACE[146] TO BEGIN:";:GOSUB2100:PRINT"[147]":RETURN
  274. 17500 REM BOXED DISPLAY
  275. 17510 S$="":IFPT=1THENRETURN
  276. 17520 GOSUB17110:FORI=C1TOC2:SN=SN(I)
  277. 17530 PRINT"[147]RECORD"I:FORK=0TONM:PRINTPS$(K)TL$(K)BX$(K);
  278. 17540 PRINTDA$(SN,K);:NEXT:GOSUB260:NEXT:RETURN
  279. 18000 REM DISPLAY MENU
  280. 18010 PRINT:PRINT"[212]HERE ARE"N" RECORDS":INPUT"[211]TART WITH RECORD #   1[157][157][157]";C1
  281. 18020 GOSUB16000:IFC1>NTHENGOSUB16100:GOTO18000
  282. 18030 C2=N:PRINT"[197]ND WITH RECORD #    ";C2
  283. 18035 INPUT"[145][197]ND WITH RECORD # ";C2:GOSUB16000:FORY9=1TO200:NEXT
  284. 18040 IFC2>NTHENGOSUB16100:GOTO18000
  285. 18050 PRINTL$:PRINT"1[146]: STANDARD DISPLAY"
  286. 18060 PRINT"2[146]: SELECTED DISPLAY":IFPT=0THENPRINT"3[146]: BOXED DISPLAY"
  287. 18070 GOSUB63500:GOSUB16000
  288. 18080 A=VAL(A$):IFA=0ORA>3THEN18050
  289. 18090 X=15*PT
  290. 18100 RETURN
  291. 19000 REM CHOOSE TITLES
  292. 19010 PRINT"[147]";:FORI=0TOMM:PRINT""I"[146]:"TL$(I):TN(I)=0:NEXT:I=0:PRINTL$
  293. 19020 PRINTSD$"[145][145][145][145][145][145]";:BL=35:GOSUB15140
  294. 19025 PRINT"CHOOSE "HI$"[146] TITLES[221][145][157][178][157][177][145]A[146]=ALL";
  295. 19030 PRINT" [221][145][157][178][157][177][145] "Q$"[146]=QUIT":OPEN1,0
  296. 19035 PRINTSD$"[145][145]";:PRINT"TITLE #      [157][157][157][157]";:INPUT#1,TN$:IFTN$=Q$ THEN19060
  297. 19040 IFTN$="A"THENFORI=0TONM:TN(I)=SN(I):NEXT:GOTO19060
  298. 19045 GOSUB16000:TN=VAL(TN$):IFTN>MMTHEN19035
  299. 19050 TN(I)=TN:I=I+1:PRINTLEFT$(SD$,TN+1)""TN":"TL$(TN):GOTO19035
  300. 19060 CLOSE1:I=I-1:RETURN
  301. 40000 REM LOAD TITLE-FILE
  302. 40001 POKE705,1
  303. 40005 IFLEFT$(TF$,1)<>"[160]"THENRUN
  304. 40010 INPUT"[147][212][201][212][204][197]-[198][201][204][197] NAME";TF$
  305. 40020 INPUT"[196]RIVE   0[157][157][157]";DR$:GOSUB16000
  306. 40030 OPEN15,8,15
  307. 40040 OPEN2,8,2,DR$+":"+TF$+",S,R"
  308. 40050 INPUT#15,E,EM$,ET$,ES$
  309. 40060 IFE<>0THENPRINT"DISK STATUS "EM$:CLOSE2:CLOSE15:GOSUB2000:RETURN
  310. 40065 INPUT#2,EN:IFEN=0THEN40070
  311. 40066 FORY=1TOEN:INPUT#2,EQ$(Y):NEXT:IFPEEK(705)=1THEN60000
  312. 40070 INPUT#2,NC:REM MAX # ENTRIES
  313. 40071 NC$="("+RIGHT$("   "+STR$(NC),3)+" [205][193][216])":ZO$=CHR$(0)
  314. 40075 INPUT#2,NM:REM NUMBER OF TITLES
  315. 40080 INPUT#2,LL:REM LINE LENGTH
  316. 40086 INPUT#2,KM:REM TITLES/LINE
  317. 40090 DIM TL$(NM),FD$(NM),SN(NC),I(2*NC),L(NM),N(NM),V(NM),SV(NM),K(NM)
  318. 40095 DIM DA$(NC,NM),TN(NM),S$(NM),PS$(NM),R(NM),BX$(NM),X(NM)
  319. 40100 FORI=0TONM:INPUT#2,R(I):DA$(0,I)=ZO$:NEXT
  320. 40110 FORI=0TONM:INPUT#2,TL$(I):INPUT#2,FD$(I):INPUT#2,L(I):INPUT#2,N(I)
  321. 40115 INPUT#2,PS$(I):NEXT:FORK=0TOKM:INPUT#2,A(K):NEXT
  322. 40117 CLOSE2:CLOSE15:PRINT"[147] [212][201][212][204][197][211][146]: A[146]=ALPHABETIC N[146]=NUMERIC""
  323. 40118 RV$(0)[178]"WAIT":RV$(1)[178]"":AL$(1)[178]"A":AL$(0)[178]"N"
  324. 40120 [129]I[178]0[164]NC:SN(I)[178]I:[130]:S$[178]""
  325. 40130 [129]K[178]0[164]NM:[153]PS$(K)RV$(R(K))TL$(K)RV$(0);:BL[178]L(K)
  326. 40140 [141]15140:[153]AL$(N(K)):BX$(K)[178]BX$
  327. 40150 [130]:[142]
  328. 50000 [143] GET FILE NAMES
  329. 50010 B[178]30:AN[178]1:CN[178]0
  330. 50020 [133]"LOADSTR$RIVE   0CMDCMDCMD";DR$:[141]16000
  331. 50030 [159]15,8,15:[153]"LOADFILES ON DISK:DRIVE "DR$:[153]L$
  332. 50040 [152]15,"M-E"[199](212)[199](237)
  333. 50050 [159]2,8,0,"$"[170]DR$[170]":*=S"
  334. 50060 [161]#2,A$:[161]#2,A$:I$[178]""
  335. 50070 [161]B9$:[139]ST[179][177]0[176]B9$[179][177]""[167]50200
  336. 50080 [129]A[178]1[164]B:[161]#2,A$
  337. 50090 [139]A$[178]""[167]A$[178][199](0)
  338. 50100 I$[178]I$[170]A$:[130]:J$[178]I$:[139]AN[178]1[167]50190
  339. 50110 I$[178][202](I$,8)
  340. 50120 LF$[178][200](I$,1)
  341. 50130 [139]LF$[178][199](34)[176]LF$[178]" "[167]I$[178][202](I$,2):[137]50120
  342. 50140 J[178]1:II$[178]""
  343. 50150 J$[178][202](I$,J,1):[139]J$[179][177][199](34)[167]J[178]J[170]1:II$[178]II$[170]J$:[139]J[179]17[167]50150
  344. 50160 [139]J[177]16[167]50200
  345. 50170 [153]""II$:[139][201](II$,1)[179][177]"+"[167][153]"ON"BL$:[153]"ON";:[137]50190
  346. 50180 CN[178]CN[170]1:NM$(CN)[178]II$
  347. 50190 AN[178]0:I$[178]"":B[178]32:[137]50070
  348. 50200 [160]2:[160]15:[153]
  349. 50210 [142]
  350. 55000 [143] USER SUBROUTINE
  351. 55999 [142]
  352. 59000 TF$[178]"":L1[178][194](706):[129]Y[178]1[164]L1:TF$[178]TF$[170][199]([194](706[170]Y)):[130]
  353. 59010 DR$[178][196]([194](706[170]Y)):[141]40030:[151]705,0:[142]
  354. 60000 [160]2:[160]15
  355. 60004 L1[178][195](TF$)
  356. 60005 [129]Y[178]1[164]L1:[151]706[170]Y,[198]([202](TF$,Y,1)):[130]:[151]706[170]Y,[197](DR$)
  357. 60010 [151]198,9:[129]I[178]0[164]8:[151]631[170]I,13:[130]:[151]706,L1:FF[178]55000
  358. 60020 [153]"LOAD";:[129]Y[178]1[164]EN:[153]FF[170]Y;EQ$(Y):[130]:[153]"LISTRUNSTOP"
  359. 60030 [153]""L$:[153]"(null)(null)VAL(null) (null)(null)PEEK(null)(null)(null)(null)RIGHT$(null)VAL..";:[151]705,123:[129]I9[178]1[164]900:[130]:[128]
  360. 63000 [143] INITIALIZE
  361. 63001 [153]"LOAD":[139][194](31872)[178]32[167]63010
  362. 63002 [153]"LOADLOAD"[199](34)"FILE/BOOT"[199](34)",8":[153]"RUN"
  363. 63003 [151]198,2:[151]631,13:[151]632,13:[128]
  364. 63010 [139][194](705)[178]123[167][141]59000
  365. 63012 NF[178]50:[143] MAX NUMBER OF FILES
  366. 63015 NL[178]7:[143] MAX NUMBER OF LINES
  367. 63020 [134] NM$(NF)
  368. 63090 L$[178]"TANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTANTAN"
  369. 63100 LP$[178]L$[170]L$:BL$[178]"                                      "
  370. 63105 DT$[178]"":[129]I[178]1[164]39:DT$[178]DT$[170]".":[130]:SS$[178]"CLOSE"
  371. 63110 Q$[178]"@":AQ[178][198](Q$):B$[178]"^":AB[178][198](B$):FL$[178]"               "
  372. 63120 P1[178]1:P2[178]60:P3[178]64:WD[178]40
  373. 63135 [153]"LOAD(null)(null)(null)VAL: FUNCTION KEYS CHANGE COLOURS...":[129]T9[178]1[164]1000:[130]
  374. 63140 [153]: [153]"...INITIALIZING ASCRIGHT$(null)VAL/(null)ATN(null)(null)VAL(null)..."
  375. 63145 L$(1)[178]LP$:L$(0)[178]L$
  376. 63150 C0[178]211:LN[178]214:V$[178]"":O$[178]"WAIT":RV$(0)[178]O$:RV$(1)[178]V$
  377. 63160 L$[178][200](L$,WD[171]1)
  378. 63170 SD$[178]""
  379. 63180 CR$[178][199](13):P$(1)[178]"":P$(0)[178]""
  380. 63190 PT$(1)[178]"":PT$(0)[178][199](13)
  381. 63200 A1[178]17:A2[178]145:A3[178]148:A4[178]19:A5[178]147:A6[178]157:A7[178]95:A8[178]20:A9[178]13:AT[178]44:AE[178]59
  382. 63210 X$[178]"":[129]I[178]1[164]5[170]2[172](WD[171]40)[173]8
  383. 63220 X$[178]X$[170]"":[130]
  384. 63260 BL[178]35:[141]15140:BB$[178]BX$
  385. 63320 SID[178]54272:[151]SID[170]1,50:[151]SID[170]3,200:[151]SID[170]5,0:[151]SID[170]6,240
  386. 63330 [151]SID[170]24,0
  387. 63399 [142]
  388. 63500 [153]SD$"ON"L$SD$"SELECTIONWAIT? ";:[151]646,C3
  389. 63501 [151]204,0:[141]2300:[151]204,1:[139]Q9[178]0[167] [141]16000
  390. 63502 [142]
  391. 63600 [143] EXPLAIN
  392. 63601 [139]NM$[178]""[167]63610
  393. 63605 [153]"LOAD(null)ANT TO SAVE "NM$" WAITFIRST";:[141]63501:[139]A$[178]"Y"[167]500
  394. 63610 [153]"LOAD(null)HERE IS ASCRIGHT$(null)VAL/VAL(null)(null)(null)ATNRIGHT$(null):";:[133]"   DRIVE   0CMDCMDCMD";DR$
  395. 63620 [151]704,[197](DR$):[147]DR$[170]":FILE/EXPLAIN*",8:[138]
  396. 63700 [153][194](197);:[137]63700
  397.